#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
WebM格式音频转换为MP3格式的工具
"""

import os
import sys
from pydub import AudioSegment


def convert_webm_to_mp3(input_path, output_path=None):
    """
    将WebM文件转换为MP3文件
    
    Args:
        input_path (str): 输入的WebM文件路径
        output_path (str, optional): 输出的MP3文件路径。如果不提供，则默认与输入文件同名但扩展名为.mp3
        
    Returns:
        str: 输出的MP3文件路径
    """
    # 检查输入文件是否存在
    if not os.path.exists(input_path):
        raise FileNotFoundError(f"输入文件不存在: {input_path}")
    
    # 检查文件扩展名是否为.webm
    if not input_path.lower().endswith('.webm'):
        raise ValueError(f"输入文件不是WebM格式: {input_path}")
    
    # 如果未提供输出路径，则生成默认路径
    if output_path is None:
        output_path = os.path.splitext(input_path)[0] + '.mp3'
    
    print(f"开始转换: {input_path} -> {output_path}")
    
    try:
        # 加载WebM文件
        audio = AudioSegment.from_file(input_path, format="webm")
        
        # 导出为MP3文件，使用128kbps的比特率
        audio.export(output_path, format="mp3", bitrate="128k")
        
        print(f"转换完成: {output_path}")
        return output_path
    except Exception as e:
        print(f"转换失败: {str(e)}")
        raise


def main():
    """主函数"""
    # 获取命令行参数
    if len(sys.argv) < 2:
        print("用法: python webm_to_mp3.py <input_webm_file> [output_mp3_file]")
        print("示例: python webm_to_mp3.py 1.webm output.mp3")
        sys.exit(1)
    
    input_file = sys.argv[1]
    output_file = sys.argv[2] if len(sys.argv) > 2 else None
    
    try:
        convert_webm_to_mp3(input_file, output_file)
    except Exception as e:
        print(f"错误: {str(e)}")
        sys.exit(1)


if __name__ == "__main__":
    main()